Page({
	data: {
		currentTab: 0, // 当前选中的标签页
		scrollTop: 0, // 滚动位置
		demandCollectList: [], // 约拍收藏列表
		workCollectList: [], // 作品收藏列表
		page: 1, // 当前页数
		pageSize: 10, // 每页展示的数据数
		isLoading: false, // 加载状态，防止重复触发
		isNoMoreData: false // 是否没有更多数据
	},

	onLoad() {
		this.loadCollectList(0); // 默认加载约拍收藏列表
	},

	// 切换标签页
	switchTab(e) {
		const index = e.detail.index; // van-tabs 的 change 事件返回的 index 在 e.detail 中
		this.setData({
			currentTab: index,
			scrollTop: 0, // 切换时重置滚动位置
			page: 1, // 重置页数为1
			isNoMoreData: false // 重置没有更多数据的状态
		});

		// 检查缓存中是否有数据
		const cacheKey = index === 0 ? 'demandCollectList' : 'workCollectList';
		const cachedData = wx.getStorageSync(cacheKey);

		if (cachedData && cachedData.length > 0) {
			// 如果有缓存数据，直接使用缓存数据
			if (index === 0) {
				this.setData({
					demandCollectList: cachedData
				});
			} else {
				this.setData({
					workCollectList: cachedData
				});
			}
		} else {
			// 如果没有缓存数据，发起请求
			this.loadCollectList(index);
		}
	},

	// 加载收藏列表
	loadCollectList(contentType) {
		if (this.data.isLoading || this.data.isNoMoreData) {
			console.log('阻止请求: isLoading =', this.data.isLoading, 'isNoMoreData =', this.data.isNoMoreData);
			return; // 如果正在加载或没有更多数据，直接返回
		}
		this.setData({
			isLoading: true
		}); // 设置加载状态为 true

		const {
			page,
			pageSize
		} = this.data;
		wx.request({
			url: 'http://localhost:8080/user/common/getCollectList',
			method: 'GET',
			header: {
				token: wx.getStorageSync('userInfo').data.token, // 携带 token
			},
			data: {
				page,
				pageSize,
				contentType: contentType // 0: 约拍, 1: 作品
			},
			success: (res) => {
				const {
					total,
					records
				} = res.data.data;
				console.log('原始数据:', records); // 打印原始数据
				const processedRecords = records.map(item => {
					const urlList = item.urlList ? item.urlList.split(',') : [];
					return {
						...item,
						tags: item.tags ? item.tags.split(',') : [],
						UrlList: urlList
					};
				});
				console.log('处理后的数据:', processedRecords); // 打印处理后的数据

				const cacheKey = contentType === 0 ? 'demandCollectList' : 'workCollectList';
				wx.setStorageSync(cacheKey, processedRecords); // 将数据缓存到本地

				if (contentType === 0) {
					this.setData({
						demandCollectList: page === 1 ? processedRecords : this.data.demandCollectList.concat(processedRecords),
						total,
						isNoMoreData: processedRecords.length < pageSize
					}, () => {
						console.log('约拍数据更新成功:', this.data.demandCollectList); // 打印更新后的数据
					});
				} else if (contentType === 1) {
					this.setData({
						workCollectList: page === 1 ? processedRecords : this.data.workCollectList.concat(processedRecords),
						total,
						isNoMoreData: processedRecords.length < pageSize
					}, () => {
						console.log('作品数据更新成功:', this.data.workCollectList); // 打印更新后的数据
					});
				}
			},
			fail: () => {
				wx.showToast({
					title: '加载失败，请重试',
					icon: 'none'
				});
			},
			complete: () => {
				this.setData({
					isLoading: false
				}); // 无论成功或失败，都重置加载状态
			}
		});
	},

	// 上拉触底事件
	onReachBottom() {
		if (this.data.isLoading || this.data.isNoMoreData) {
			wx.showToast({
				title: this.data.isNoMoreData ? '没有更多数据了' : '正在加载中...',
				icon: 'none'
			});
			return;
		}
		this.setData({
			page: this.data.page + 1
		});
		this.loadCollectList(this.data.currentTab); // 根据当前标签页加载更多
	},

	// 下拉刷新事件
	onPullDownRefresh() {
		this.setData({
			page: 1,
			isNoMoreData: false
		});
		this.loadCollectList(this.data.currentTab); // 强制重新加载数据
		wx.stopPullDownRefresh(); // 停止下拉刷新动画
	},

	// 跳转到详情页
	navigateToDetail(event) {
		const id = event.currentTarget.dataset.id; // 获取帖子ID
		const {
			currentTab
		} = this.data; // 获取当前选中的标签页

		wx.getStorage({
			key: 'isLogin',
			success: (res) => {
				if (res.data) {
					// 已登录，根据 currentTab 跳转到不同的详情页
					if (currentTab === 0) {
						// 约拍（需求单）详情页
						wx.navigateTo({
							url: `/demand/pages/demand_detail/demand_detail?demandId=${id}`
						});
					} else if (currentTab === 1) {
						// 作品详情页
						wx.navigateTo({
							url: `/work/pages/work_detail/work_detail?workId=${id}`
						});
					}
				} else {
					// 未登录，跳转到登录页
					wx.navigateTo({
						url: '/pages/login/login'
					});
				}
			},
			fail: () => {
				// 未登录，跳转到登录页
				wx.navigateTo({
					url: '/pages/login/login'
				});
			}
		});
	}
});